from PyQt5.Qt import *

class MyQWidget(QWidget):
    def __init__(self):
        super().__init__()
        self.setup_ui()

    def setup_ui(self):
        self.setWindowTitle("Object类型")

        """
        isWidgetType: 是不是Widget类型
        inherits: 一个对象是否继承某个类
        """
        obj = QObject()
        print(obj.isWidgetType()) # false
        print(obj.inherits("QWidget")) # false

        btn = QPushButton()
        print(btn.isWidgetType()) # True
        print(btn.inherits("QWidget")) # True

        """
        deleteLater：删除对象，并没有立即删除，而是向主消息循环发送一个event，
        下次主循环消息循环到该event后才会销毁对象，这么做的好处就是可以在延迟
        的这段时间内完成一些操作，坏处就是内存释放不及时。
        """
        obj.deleteLater()






if __name__ == '__main__':
    import sys
    app = QApplication(sys.argv)
    window = MyQWidget()
    window.show()
    sys.exit(app.exec_())